home *** CD-ROM | disk | FTP | other *** search
/ FishMarket 1.0 / FishMarket v1.0.iso / fishies / 001-025 / disk_020 / hash / hash.c < prev    next >
C/C++ Source or Header  |  1992-05-06  |  533b  |  36 lines

  1. main( argc, argv )
  2. int argc;
  3. char **argv;
  4. {
  5.     if( argc != 2 ) {
  6.         printf( "Usage: %s <name>\n", argv[0] );
  7.         exit( 1 );
  8.     }
  9.  
  10.     printf( "hash is %ld\n", (hash( argv[1] ) % 72) + 6 );
  11.  
  12. }
  13.  
  14. hash( s )
  15. unsigned char *s;
  16. {
  17.     int i;
  18.     int res;
  19.     unsigned char *sp;
  20.     unsigned c;
  21.  
  22.     res = strlen( s );
  23.  
  24.     for( i = 1, sp = s; *sp; i++, sp++ ) {
  25.         c = *sp;
  26.         if( c >= 'a' && c <= 'z' ) {
  27.             c = c - 'a' + 'A';
  28.         }
  29.         res = ((res * 13 + c ) & 0x7ff);
  30.     }
  31.     return( res );
  32. }
  33.  
  34.  
  35.  
  36.